package com.fh.service.building.message;

import com.fh.dao.DaoSupport;
import com.fh.entity.Page;
import com.fh.util.DateUtil;
import com.fh.util.PageData;
import com.fh.util.UuidUtil;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

/**
 * Created by Administrator on 2017/10/4.
 */
@Service("sysMessageService")
public class SysMessageService {


    @Resource(name = "daoSupport")
    private DaoSupport dao;

    private final static String ns = "SysMessageMapper.";

    /*
     *消息列表
     */

    public List<PageData> findAllmsessage(PageData pd)throws Exception{
        return (List<PageData>)dao.findForList(ns + "findAllmsessage", pd);
    }



    /*
     *消息列表
     */

    public List<PageData> findAllnotice(PageData pd)throws Exception{
        return (List<PageData>)dao.findForList(ns + "findAllnotice", pd);
    }



   /* public List<PageData> mymsessage(Page page) throws Exception {
        return (List<PageData>)dao.findForList(ns + "datalistPagemymessage", page);
    }*/



    /*
    * 新增
    */
    public void save(PageData pd)throws Exception{
        pd.put("MESSAGE_ID", UuidUtil.get32UUID());    //主键
        pd.put("IS_READ", 0); //设为未读
        pd.put("IS_DELETED", 1); //是否删除
        pd.put("CREATE_TIME", new DateUtil().getTime()); //创建时间
        dao.save(ns + "save", pd);
    }
    /*
    * 新增  消息通知
    */
    public void saveMessage(PageData pd)throws Exception{
        pd.put("MESSAGE_ID", UuidUtil.get32UUID());    //主键
        pd.put("IS_READ", 0); //设为未读
        pd.put("IS_DELETED", 0); //是否删除
        pd.put("CREATE_TIME", new DateUtil().getTime()); //创建时间
        dao.save(ns + "save", pd);
    }

    /*
    * 删除
    */
    public void delete(PageData pd)throws Exception{
        dao.delete(ns + "delete", pd);
    }

    /*
    * 修改
    */
    public void edit(PageData pd)throws Exception{
        dao.update(ns + "edit", pd);
    }
    /*
    * 删除 one 合同
    */
    public void deleteONE(PageData pd)throws Exception{
        dao.update(ns + "deleteONE", pd);
    }
    /*
    * 删除 one 账单
    */
    public void deleteONE_BILL(PageData pd)throws Exception{
        dao.update(ns + "deleteONE_BILL", pd);
    }

    /**
     *  未读变已读
     * @return
     * @throws Exception
     */
    public void changeReadStatus(PageData pd)throws Exception{
        dao.update(ns + "changeReadStatus", pd);
    }
    /**
     *  显示消息
     * @return
     * @throws Exception
     */
    public void changeload(PageData pd)throws Exception{
        dao.update(ns + "changeload", pd);
    }

    /*
    *列表
    */
    public List<PageData> list(Page page)throws Exception{
        return (List<PageData>)dao.findForList(ns + "datalistPage", page);
    }

    /*
    *列表(全部)
    */
    public List<PageData> listAll(PageData pd)throws Exception{
        return (List<PageData>)dao.findForList(ns + "listAll", pd);
    }
    /*
    *计算消息数目 为了首页显示用 然后 毫无用处
    */
    public List<PageData> listindex(PageData pd)throws Exception{
        return (List<PageData>)dao.findForList(ns + "listindex", pd);
    }
    /*
   * 定时器任务 获取 列表(全部)
   */
    public Object FindlistAll()throws Exception{
        return dao.findForList(ns + "FindlistAll", "");
    }


    /*
     * 通过id获取数据
     */
    public PageData findById(PageData pd)throws Exception{
        return (PageData)dao.findForObject(ns + "findById", pd);
    }



    /*
     * 通过id修改公告是否已读（公告功能）
     */
    public PageData updatenotice(PageData pd)throws Exception{
        return (PageData)dao.findForObject(ns + "updatenotice", pd);
    }



    /*
     * 通过id修改账单中的更新时间和是否已读（消息功能）
     */
    public PageData updatezd(PageData pd)throws Exception{
        return (PageData)dao.findForObject(ns + "updatezd", pd);
    }



    /*
     * 通过id修改合同中的更新时间和是否已读（消息功能）
     */
    public PageData updateht(PageData pd)throws Exception{
        return (PageData)dao.findForObject(ns + "updateht", pd);
    }


    /*
    * 批量删除
    */
    public void deleteAll(String[] ArrayDATA_IDS)throws Exception{
        dao.delete(ns + "deleteAll", ArrayDATA_IDS);
    }

    /**
     * 保存公告
     * @param pd
     */
    public void saveGg(PageData pd) throws Exception {
        PageData temp = new PageData();
        if(pd.getString("receiver_userid") == null || pd.getString("receiver_userid").equals("") ){
            throw new Exception("接收人不能为空！");
        }
        if(pd.getString("title") == null || pd.getString("title").equals("") ){
            throw new Exception("标题不能为空！");
        }
        if(pd.getString("content") == null || pd.getString("content").equals("") ){
            throw new Exception("内容不能为空！");
        }
        if(pd.getString("CREATE_USERID") == null || pd.getString("CREATE_USERID").equals("") ){
            throw new Exception("没有登录！");
        }
        String receiver_userid = pd.getString("receiver_userid");
        String title = pd.getString("title");
        String content = pd.getString("content");
        String CREATE_ID = pd.getString("CREATE_USERID");
        String SEND_NAME = pd.getString("SEND_NAME");

        String[] receiver_userid_arr = receiver_userid.split(",");

        for(String str : receiver_userid_arr){
            temp = new PageData();
            temp.put("TYPE",'2');//类型为公告
            temp.put("RECEIVER_USERID",str);
            temp.put("TITLE",title);
            temp.put("CONTENT",content);
            temp.put("CREATE_USERID",CREATE_ID);
            temp.put("SEND_NAME",SEND_NAME);
            this.save(temp);
        }

    }
}
